package com.iuie.ns.datum.mapper;

import java.io.Serializable;
import java.util.List;

import org.apache.ibatis.annotations.Param;

import com.iuie.ns.datum.vo.FileInfoVO;
import com.iuie.ns.frame.persistence.annotations.MyBatisRepository;

/**
 * @desc 文件信息mapper
 * @createTime 2017年8月15日 下午12:47:30
 * @author iuie
 */
@MyBatisRepository
public interface FileInfoMapper {
	
	/**
	 * 下载文件，更新下载次数
	 * @param fileId 文件ID
	 */
	void downloadFileById(Serializable fileId);

    /**
     * 条件查询文件信息
     * @param page 分页信息
     * @param fileInfo 条件信息
     * @return
     * @date 2017年8月15日 下午12:47:02
     */
    List<FileInfoVO> queryLst(@Param("fileInfo") FileInfoVO fileInfo);

    /**
     * 更新文件名
     * @param fileId
     * @param newFileName
     */
	Integer updateFileName(@Param("fileId") Long fileId, @Param("fileName") String fileName);

	/**
	 * 根据fileId更新targetId
	 * @param fileId
	 * @param targetId
	 * @return
	 * @date 2018年6月19日上午8:44:04
	 */
	Integer updateTargetId(@Param("fileId") Long fileId, @Param("targetId") String targetId);

	/**
	 * 根据targetId删除文件信息
	 * @param targetId
	 * @date 2018年6月20日上午8:04:45
	 */
	Integer deleteByTargetId(@Param("targetId") String targetId);

	/**
	 * 根据fileId删除文件信息
	 * @param fileId
	 * @return
	 * @date 2018年6月20日上午8:43:49
	 */
	Integer deleteById(@Param("fileId") Long fileId);

	/**
	 * 根据ID查询单条记录
	 * @param fileId
	 * @return
	 * @date 2018年6月20日上午8:50:58
	 */
	FileInfoVO findById(@Param("fileId") Long fileId);


}
